<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 函数声明
        function f1(){
            console.log("f1函数");
        }
        console.log(typeof f1);//function
        
        //函数表达式
        var f2=function(){
            console.log("f2函数");
        };
        console.log(typeof f2);//function
       /*  
        结论：
        数据类型：string、number、boolean、undefined、object、function */

        function fn(){
            console.log("我是fn函数");
        }
        function f3(f){//形参，将形参看成是一个函数
            f();//fn()
        }

        //将一个函数作为另一个函数的参数
        f3(fn);//实参，将fn作为实参,不可以加小括号的，回调函数


        function calc(x,y){
            return x+y;
        }
        function show(a,b,f){//将f看成是一个函数
            var res=f(a,b);//res=calc(20,10)=30;
            console.log(res);
        }

        show(20,10,calc);//回调函数

    </script>
</head>
<body>
    
</body>
</html>